Path Parameters এর মাধ্যমে Dynamic Routing

Web Development - ফাস্টএপিআই (FastAPI) - FastAPI এর সাথে Query Parameters এবং Path Parameters
165

FastAPI তে Path Parameters ব্যবহার করে Dynamic Routing তৈরি করা সম্ভব। Path Parameters URL এর অংশ হিসেবে ডাইনামিক ডাটা গ্রহণ করতে ব্যবহৃত হয়। FastAPI স্বয়ংক্রিয়ভাবে Path Parameters এর টাইপ যাচাই করে, যা URL-এ ডাইনামিক পাথ প্যারামিটারগুলির মাধ্যমে ইনপুট ডাটা গ্রহণের প্রক্রিয়াকে সহজ এবং কার্যকর করে তোলে।

এখানে, আমরা দেখব কীভাবে FastAPI তে Path Parameters ব্যবহার করে ডাইনামিক রাউট তৈরি করা যায়।


Path Parameters কী?

Path Parameters হল URL-এ {} ব্র্যাকেটের মধ্যে থাকা ডাইনামিক প্যারামিটার, যা URL থেকে ডাটা গ্রহণ করতে সাহায্য করে। এটি অ্যাপ্লিকেশনের URL-এর নির্দিষ্ট অংশ থেকে ডাটা হ্যান্ডল করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি API যেখানে user_id অথবা item_id URL-এ প্যারামিটার হিসেবে দেওয়া যায়।


Step 1: FastAPI তে Path Parameters দিয়ে Dynamic Routing তৈরি করা

FastAPI-তে Path Parameters ব্যবহারের মাধ্যমে আমরা URL-এ ডাইনামিক প্যারামিটারগুলো গ্রহণ করতে পারি এবং সেই অনুযায়ী রাউট তৈরি করতে পারি।

উদাহরণ: Path Parameters দিয়ে Dynamic Routing

from fastapi import FastAPI

app = FastAPI()

# Path Parameter ব্যবহার
@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}

এখানে, {item_id} একটি Path Parameter, এবং item_id আমাদের ফাংশনের আর্গুমেন্ট হিসেবে পাঠানো হবে। FastAPI স্বয়ংক্রিয়ভাবে এই প্যারামিটারটির টাইপ যাচাই করে, কারণ আমরা এটি int টাইপ হিসেবে নির্ধারণ করেছি।

রিকোয়েস্ট উদাহরণ:

GET /items/123

রেসপন্স:

{
  "item_id": 123
}

এখানে, item_id প্যারামিটারটি URL থেকে গ্রহণ করা হয়েছে এবং এটি ফাংশনে পাঠানো হয়েছে।


Step 2: Multiple Path Parameters (একাধিক Path Parameters)

FastAPI তে আপনি একাধিক Path Parameters একসাথে ব্যবহার করতে পারেন। এটি ডাইনামিক রাউটিং আরও শক্তিশালী এবং ফ্লেক্সিবল করে তোলে।

উদাহরণ: একাধিক Path Parameters

from fastapi import FastAPI

app = FastAPI()

@app.get("/users/{user_id}/items/{item_id}")
def read_user_item(user_id: int, item_id: int):
    return {"user_id": user_id, "item_id": item_id}

এখানে, আমরা দুটি Path Parameters ব্যবহার করেছি: user_id এবং item_id। FastAPI স্বয়ংক্রিয়ভাবে এগুলোর টাইপ যাচাই করে এবং রিকোয়েস্টের মান অনুযায়ী এই প্যারামিটারগুলো ফাংশনে পাঠানো হয়।

রিকোয়েস্ট উদাহরণ:

GET /users/101/items/2001

রেসপন্স:

{
  "user_id": 101,
  "item_id": 2001
}

এখানে, আমরা user_id এবং item_id উভয় প্যারামিটারকেই URL থেকে গ্রহণ করেছি এবং সেগুলোকে রাউটিং ফাংশনে পাঠিয়েছি।


Step 3: Path Parameters-এ Default Values এবং Validation

FastAPI তে Path Parameters এর জন্য default values এবং validation নির্ধারণ করা যায়। যেমন, আপনি একটি Path Parameter কে ঐচ্ছিক (Optional) বা একটি নির্দিষ্ট সীমা (Range) মধ্যে সীমাবদ্ধ করতে পারেন।

উদাহরণ: Default Values এবং Validation সহ Path Parameters

from fastapi import FastAPI, Path

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int = Path(..., ge=1, le=1000)):  # ge=1, le=1000 validation
    return {"item_id": item_id}

এখানে:

  • ge=1: এটি নিশ্চিত করবে যে item_id ১ বা তার বেশি হবে।
  • le=1000: এটি নিশ্চিত করবে যে item_id ১০০০ বা তার কম হবে।

রিকোয়েস্ট উদাহরণ:

GET /items/50

রেসপন্স:

{
  "item_id": 50
}

ভুল রিকোয়েস্ট উদাহরণ:

GET /items/1500

রেসপন্স (ত্রুটি):

{
  "detail": [
    {
      "loc": ["path", "item_id"],
      "msg": "ensure this value is less than or equal to 1000",
      "type": "value_error.number.not_le"
    }
  ]
}

এখানে, item_id ১০০০ এর বেশি হলে FastAPI স্বয়ংক্রিয়ভাবে ত্রুটি দেখাবে।


Step 4: Path Parameters এবং Query Parameters একসাথে ব্যবহার

FastAPI তে Path Parameters এবং Query Parameters একসাথে ব্যবহার করা যেতে পারে। Path Parameters URL-এর অংশ হিসেবে পাঠানো হয়, আর Query Parameters URL-এর শেষে ? দিয়ে অতিরিক্ত ডাটা পাঠানোর জন্য ব্যবহৃত হয়।

উদাহরণ: Path Parameters এবং Query Parameters একসাথে

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "query": q}

এখানে:

  • item_id হল Path Parameter
  • q হল Query Parameter

রিকোয়েস্ট উদাহরণ:

GET /items/123?q=example

রেসপন্স:

{
  "item_id": 123,
  "query": "example"
}

এখানে, item_id Path Parameter হিসেবে পাঠানো হয়েছে এবং q Query Parameter হিসেবে পাঠানো হয়েছে।


Step 5: Path Parameters এর জন্য Custom Error Handling

FastAPI তে আপনি Path Parameters-এর জন্য কাস্টম error handling সেটআপ করতে পারেন। এর মাধ্যমে আপনি যদি কোনো অবৈধ ইনপুট পান, তবে একটি কাস্টম ত্রুটি মেসেজ ফেরত পাঠাতে পারেন।

উদাহরণ: কাস্টম Error Handling

from fastapi import FastAPI, HTTPException

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int):
    if item_id < 1 or item_id > 100:
        raise HTTPException(status_code=400, detail="Item ID must be between 1 and 100")
    return {"item_id": item_id}

এখানে, যদি item_id ১ থেকে ১০০ এর বাইরে থাকে, তবে FastAPI একটি 400 Bad Request ত্রুটি মেসেজ সহ কাস্টম ত্রুটি দেখাবে।

রিকোয়েস্ট উদাহরণ:

GET /items/150

রেসপন্স:

{
  "detail": "Item ID must be between 1 and 100"
}

FastAPI তে Path Parameters ব্যবহার করে ডাইনামিক রাউটিং তৈরি করা সহজ এবং কার্যকর। আপনি Path Parameters এর মাধ্যমে ডাইনামিক ডাটা গ্রহণ করতে পারেন এবং ValidationDefault Values ব্যবহার করে ইনপুট ডাটাকে যাচাই করতে পারেন। এর মাধ্যমে আপনি আরও স্কেলেবল এবং কার্যকর API তৈরি করতে সক্ষম হবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...